import axios from 'axios'
import context from '../main.js'
// let v = new Vue();
axios.defaults.headers.get['Content-Type'] = 'application/json;charset=UTF-8'
// 创建 axios 示例
var requesturl='zzjserver/controlAction.do?method=ApplyAction';
var params;
const service = axios.create({
    //   baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
    url: requesturl,
    method: 'get',
    params,
    timeout: 6000
})

// 请求拦截器（在发送请求之前做些什么）
// service.interceptors.request.use(
//   config => {
//     // var params = new URLSearchParams();
//     // params.append("funcid", "M07.02.01.02");
//     // params.append("cxdm00", "11111111");
//     // params.append("cxfs00", "02");
//     // config.params=params;
//     // alert("config="+JSON.stringify(config));
//     // do something before request is sent
//     return config
//   },
//   error => {
//     // do something with request error
//     alert("error="+JSON.stringify(error)) // for debug
//     return Promise.reject(error)
//   }
// )

//接收拦截器（接收后做些什么，请求状态判断、业务失败成功的判断或者动态路由赋值等）
service.interceptors.response.use(response => {
      return response
  },
  error => {
    context.$alert(error, '抱歉提示：', {
        confirmButtonText: '确定',
        callback: action => {
          if(action === 'confirm'){
            context.$store.commit("alteruserinfo", "");
            context.$router.push({ name: "home" });
          }
        }
      });
    return Promise.reject(error)
  }
)
// 检查http状态码返回是否正常
function checkStatus(response) {
    // 如果http状态码正常，则直接返回数据
    if (response && (response.status === 200 || response.status === 304 ||
        response.status === 400)) {
        return response;
    }
    // 异常状态下，把错误信息返回去
    return {
        status: -404,
        msg: '网络异常'
    };
}

// 检查异常code
function checkCode(res) {
    // 如果code异常(这里已经包括网络错误，服务器错误，后端抛出的错误)，可以弹出一个错误提示，告诉用户
    if (res.data.retcode == "0") {
        return res;
      } else {
        context.$alert(JSON.stringify(res.data.retmsg), '温馨提示', {
            confirmButtonText: '确定',
            showClose:false,
            roundButton:true,
            callback: action => {
              if(action === 'confirm'){
                context.$store.commit("alteruserinfo", "");
                context.$router.push({ name: "home" });
              }
            }
          });
        return Promise.reject(JSON.stringify(res.data.retmsg))
      }
}
function requst(params) {
    return service({
        method: 'get',
        baseURL: '/sst',
        url: requesturl,
        timeout: 6000,
        headers: {
            'Content-Type': 'application/json;charset=UTF-8',
        },
        params, // get 请求时带的参数
    }).then(
        (response) => {
            return checkStatus(response);
        }
    ).then(
        (res) => {
            // eslint-disable-next-line no-console
            // console.log("res=" +JSON.stringify(res.data.retbody) );
            return checkCode(res);
        }
    );
}


export default requst
// export function requstdata(input) {
//     return service({
//       url: 'http://120.27.19.166:7001/zzjserver/controlAction.do?method=ApplyAction',
//       method: 'post',
//       params: { input }
//     })
//   }
